Weld angle correction device

ABSTRACT

A method of correcting angles of a welding torch positioned by a user while training a robot of a robotic welding system is provided. Weldment depth data of a weldment and a corresponding weld seam is acquired and 3D point cloud data is generated. 3D plane and intersection data is generated from the 3D point cloud data, representing the weldment and weld seam. User-placed 3D torch position and orientation data for a recorded weld point along the weld seam is imported. A torch push angle and a torch work angle are calculated for the recorded weld point, with respect to the weldment and weld seam, based on the user-placed torch position and orientation data and the 3D plane and intersection data. The torch push angle and the torch work angle are corrected for the recorded weld point based on pre-stored ideal angles for the weld seam.

CROSS REFERENCE TO RELATED APPLICATION/INCORPORATION BY REFERENCE

This U.S. patent application claims priority to and the benefit of U.S.Provisional Patent Application Ser. No. 63/349,180 filed on Jun. 6,2022, which is incorporated herein by reference in its entirety. U.S.Published Patent Application No. 2020/0139474 A1 is incorporated hereinby reference it its entirety. U.S. Pat. No. 9,833,857 B2 is incorporatedherein by reference in its entirety.

FIELD

Embodiments of the present invention relate to the use of robots (e.g.,collaborative robots or cobots) for welding or cutting. Morespecifically, embodiments of the present invention relate to a weldingangle correction tool and method for correcting recorded robotwelding/cutting torch orientations as positioned by a human user whentraining a robot to traverse a weld joint.

BACKGROUND

Programming motion trajectories of a robot (e.g., a collaborative robot)prior to actual welding or cutting can be quite complicated. In additionto the challenges associated with programming a weld trajectory along aweld joint, other challenges exist that are associated with setting andprogramming angles and orientations of a welding or cutting torch atpoints along the trajectory.

SUMMARY

A robotic welding or cutting system is configured to allow a human userto train a robot of the system by positioning a welding or cutting torchattached to an arm of the robot at various points along a joint/seam ofa weldment to be welded or cut. The user moves the arm of the robot toposition a tip of the torch at a desired point along the joint/seam andthe point is recorded by the robot controller (i.e., the robotcontroller records the spatial coordinates and angular orientations ofthe torch at the point). In accordance with an embodiment of the presentinvention, the user does not have to be particularly careful about howthe angles (e.g., a push angle and a work angle) of the torch arepositioned by the user with respect to the weldment and correspondingjoint/seam. The weld angle correction tool includes a depth camera thatacquires stereoscopic depth image data which is used to determine theactual torch angles of the torch, as positioned by the user, withrespect to the joint/seam. Once the user has positioned the torch andrecorded the corresponding desired points along the joint, the user canactivate a weld angle correction tool to select a recorded point andmake corrections to the recorded parameters (e.g., push angle and workangle) associated with that point.

In one embodiment, a method of correcting angles of a welding torchpositioned by a user while training a robot of a robotic welding systemis provided. Stereoscopic image data of a weldment and a correspondingweld seam is acquired and 3D point cloud data is generated. 3D plane andintersection data is generated from the 3D point cloud data,representing the weldment and weld seam. User-placed 3D torch positionand orientation data for a recorded weld point along the weld seam isimported. A torch push angle and a torch work angle are calculated forthe recorded weld point, with respect to the weldment and weld seam,based on the user-placed torch position and orientation data and the 3Dplane and intersection data. The torch push angle and the torch workangle are corrected for the recorded weld point based on pre-storedideal angles for the weld seam.

In one embodiment, a method of correcting angles of a welding torchpositioned by a user while training a robot of a robotic welding systemis provided. The method includes acquiring weldment depth data of aweldment and a corresponding weld seam using a depth camera of a weldangle correction tool, and processing the weldment depth data using acomputer of the weld angle correction tool. In one embodiment, theweldment depth data is stereoscopic image data. In one embodiment, thecomputer of the weld angle correction tool uses matrix manipulationtechniques, point cloud manipulation techniques, and feature recognitiontechniques as part of processing the weldment depth data. The methodalso includes importing user-placed 3D torch position and orientationdata to the computer of the weld angle correction tool from a robotcontroller of a robotic welding system in a robot coordinate space for arecorded weld point along the corresponding weld seam. The methodfurther includes calculating, using the computer of the weld anglecorrection tool, at least one torch angle for the recorded weld pointwith respect to the weldment and the corresponding weld seam in therobot coordinate space based on the weldment depth data of the weldmentand the corresponding weld seam, as processed by the computer of theweld angle correction tool, and the user-placed 3D torch position andorientation data. The method also includes correcting the at least onetorch angle for the recorded weld point based on pre-stored ideal anglesfor the weldment and the corresponding weld seam. In one embodiment, theprocessing of the weldment depth data includes generating 3D point clouddata from the stereoscopic image data in the robot coordinate spaceusing the computer of the weld angle correction tool. In one embodiment,the processing of the weldment depth data includes generating 3D planeand intersection data representative of the weldment and thecorresponding weld seam from the 3D point cloud data in the robotcoordinate space using the computer of the weld angle correction tool.The torch angle may include, for example, a torch push angle and/or atorch work angle. In one embodiment, the weldment depth data istransmitted via at least one of a wired or a wireless means from thedepth camera to the computer of the weld angle correction tool. In oneembodiment, the user-placed 3D torch position and orientation data istransmitted via at least one of a wired or a wireless means from therobot controller to the computer of the weld angle correction tool. Inone embodiment, a position of the depth camera is calibrated to one of atip of the welding torch or a tool center point (TCP) of the robot.

In one embodiment, a weld angle correction tool for correcting angles ofa welding torch positioned by a user while training a robot of a roboticwelding system is provided. The weld angle correction tool includes adepth camera configured to acquire weldment depth data of a weldment anda corresponding weld seam to be welded by a robotic welding systemhaving a welding torch. The weld angle correction tool also includes acomputer device configured to receive the weldment depth data from thedepth camera, and user-placed 3D torch position and orientation datafrom a robot controller of the robotic welding system for a recordedweld point along the corresponding weld seam. The computer device isfurther configured to calculate at least one torch angle of the weldingtorch for the recorded weld point with respect to the weldment and thecorresponding weld seam in a coordinate space of the robotic weldingsystem based on the weldment depth data and the user-placed torchposition and orientation data. The computer device is also configured tocalculate at least one corrected torch angle based on the at least onetorch angle for the recorded weld point, as calculated, and pre-storedideal angles for the weldment and the corresponding weld seam. In oneembodiment, the weldment depth data is stereoscopic image data. In oneembodiment, the depth camera includes two imaging apertures foracquiring the stereoscopic image data. In one embodiment, calculating ofthe at least one torch angle using the computer device includesgenerating 3D point cloud data from the stereoscopic image data in thecoordinate space of the robotic welding system. In one embodiment,calculating of the at least one torch angle using the computer deviceincludes generating 3D plane and intersection data representative of theweldment and the corresponding weld seam from the 3D point cloud data inthe coordinate space of the robotic welding system. In one embodiment,the computer device is in the form of a laptop computer. In oneembodiment, the computer device is integrated into the robot controllerof the robotic welding system. In one embodiment, the computer device isintegrated into a welding power supply of the robotic welding system. Inone embodiment, the depth camera is configured to be removably attachedto the welding torch. In one embodiment, the depth camera is configuredto be mounted on joint 6 of a robot arm of the robotic welding system.

Numerous aspects of the general inventive concepts will become readilyapparent from the following detailed description of exemplaryembodiments, from the claims, and from the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate various embodiments of thedisclosure. It will be appreciated that the illustrated elementboundaries (e.g., boxes, groups of boxes, or other shapes) in thefigures represent one embodiment of boundaries. In some embodiments, oneelement may be designed as multiple elements or multiple elements may bedesigned as one element. In some embodiments, an element shown as aninternal component of another element may be implemented as an externalcomponent and vice versa. Furthermore, elements may not be drawn toscale.

FIG. 1 illustrates one embodiment of a welding system having a robot(e.g., a collaborative robot);

FIG. 2 illustrates one embodiment of a weld angle correction tool;

FIG. 3 illustrates a robot portion of the welding system of FIG. 1operatively integrated with the weld angle correction tool of FIG. 2 ;

FIG. 4 illustrates a schematic block diagram of data inputs to and dataoutputs from an algorithm of the weld angle correction tool of FIG. 2when operating with the welding system of FIG. 1 ;

FIG. 5A illustrates a welding torch of the welding system that has beenpositioned by a user at a desired weld point at a joint/seam of a workpiece at a non-ideal push angle;

FIG. 5B illustrates the welding torch of FIG. 5A that has beenpositioned by the user at the desired weld point of the joint/seam ofthe work piece at a non-ideal work angle;

FIG. 6 illustrates a camera view, provided by the weld angle correctiontool of FIG. 2 , of the work piece and corresponding joint/seam showingthe non-deal angles of the welding torch, before angle correction, in anaugmented reality manner;

FIG. 7 illustrates the camera view, provided by the weld anglecorrection tool of FIG. 2 , of the work piece and correspondingjoint/seam showing the corrected/ideal angles of the welding torch,after angle correction, in an augmented reality manner;

FIG. 8A illustrates the welding torch as corrected to thecorrected/ideal push angle, with respect to the joint/seam of the workpiece, by the robot of the welding system;

FIG. 8B illustrates the welding torch of FIG. 8A as corrected to thecorrected ideal work angle, with respect to the joint/seam of the workpiece, by the robot of the welding system;

FIG. 9 is a flow chart of an embodiment of a method of correctingwelding torch angles using the weld angle correction tool of FIG. 2 asoperatively integrated with the welding system of FIG. 1 ; and

FIG. 10 illustrates a block diagram of an example embodiment of acontroller that can be used, for example, in the welding system of FIG.1 .

DETAILED DESCRIPTION

The examples and figures herein are illustrative only and are not meantto limit the subject invention, which is measured by the scope andspirit of the claims. Referring now to the drawings, wherein theshowings are for the purpose of illustrating exemplary embodiments ofthe subject invention only and not for the purpose of limiting same,FIG. 1 illustrates one embodiment of a welding system 100 having a robotportion 200 (e.g., a collaborative robot). Although the discussionherein focuses on a welding system, the inventive concepts herein canapply equally well to a cutting system (e.g., a robotic plasma cuttingsystem). Referring to FIG. 1 , the welding system 100 includes a robotportion 200, a welding power supply 310, and a robot controller 320. Therobot portion 200 has an arm 210 configured to hold a welding torch(e.g., a welding gun) 220. The terms “torch” and “gun” are used hereininterchangeably. The robot portion 200 also includes a servo-mechanismapparatus 230 configured to move the arm 210 of the robot portion 200under the command of the robot controller 320. In one embodiment, thewelding system 100 includes a wire feeder (not shown) to feed consumablewelding wire to the welding torch 220.

FIG. 2 illustrates one embodiment of a weld angle correction tool 400.The weld angle correction tool 400 includes a depth camera 410 and acomputer device (e.g., a lap top computer 420). The depth camera 410 hastwo imaging apertures 411 and 412 and is configured to acquirestereoscopic image data. The stereoscopic image data allows the depthsof points in space to be determined. The stereoscopic image data istransmitted (via wired or wireless means) from the depth camera 410 tothe laptop computer 420. As discussed later herein, the laptop computer420 is programmed to convert the stereoscopic image data to 3D pointcloud data, and then generate 3D plane/intersection data from the 3Dpoint cloud data in the coordinate space of the robot (the robotcoordinate space). In other embodiments, an alternative coordinate spacemay be defined and used.

When the user positions the robot arm 210 having the welding torch 220connected thereto at a desired weld point of a weld joint/seam of aweldment (work piece), the robot controller 320 records thecorresponding torch position and orientation data. The terms “weldment”and “work piece” are used interchangeably herein. The robot controller320 transmits (via wired or wireless means) the user-placed torchposition and orientation data, in the coordinate space of the robot, tothe laptop computer 420. In accordance with other embodiments, thelaptop computer 420 may be some other type of computer device orcontroller (e.g., having at least one processor) in some other form. Inone embodiment, the functionality of the laptop computer may beintegrated into the robot controller 320, or in another embodiment, intothe welding power supply 310.

FIG. 3 illustrates a robot portion 200 of the welding system 100 of FIG.1 operatively integrated with the weld angle correction tool 400 of FIG.2 . In the embodiment of FIG. 3 , the depth camera 410 is mounted (e.g.,removably attached to) the welding torch 220 behind a gas nozzle of thewelding torch 220. In this manner, when the welding torch 220 ispositioned at a desired weld point at a weld joint/seam of a weldment,the field of view of the depth camera 410 will include the weld pointand a portion of the weldment (along with its weld joint/seam)surrounding the weld point. In another embodiment, the depth camera 410may be mounted on joint 6 of the robot arm 210 (near a distal end of therobot arm 210). Other mounting positions are possible as well, inaccordance with other embodiments. In the embodiment of FIG. 3 , thelaptop computer 420 communicates wirelessly (e.g., via Bluetooth® orWi-Fi) with the depth camera 410 and the robot controller 320. Inaccordance with one embodiment, the position of the depth camera 410 iscalibrated to, for example, the tip of the torch or a tool center point(TCP) of the robot (e.g., using an eye-hand calibration software). Thedepth camera 410 may be “hardened” to survive the welding environment.

FIG. 4 illustrates a schematic block diagram of data inputs to and dataoutputs from an algorithm 425 (or a set of algorithms or processesimplemented in software and/or hardware) on the laptop computer 420 ofthe weld angle correction tool 400 of FIG. 2 when operating with thewelding system 100 of FIG. 1 . The algorithm 425 operates on two sets ofinput data being that of weldment joint/seam stereoscopic image data(depth data) from the depth camera 410 and robot torch position andorientation data from the robot controller 320. The algorithm 425 isprogrammed to convert the depth data to 3D point cloud data, and thengenerate 3D plane/intersection data from the 3D point cloud data in thecoordinate space of the robot, for example. In accordance with oneembodiment, the algorithm 425 uses matrix manipulation techniques, pointcloud manipulation techniques, and feature recognition techniques. Uponoperating on the two sets of input data (the depth data and the torchposition/orientation data), the algorithm 425 generates a torch pushangle and a torch work angle with respect to the weld joint/seam in thecoordinate space of the robot. One skilled in the art of arc weldingwill understand the concepts of a torch push angle and a torch workangle.

The acquired depth data (in a single stereoscopic image) allows the weldangle correction tool 400 to determine, in three-dimensional detail,characteristics of the weldment joint/seam (i.e., what the geometry ofweldment joint/seam looks like). Processing of the acquired depth dataeliminates any need to use a touch-sensing technique to determine thegeometry of the weldment joint/seam. Also, the robot controller 320“knows” the recorded position and orientation of the torch with respectto the robot coordinate system, but not with respect to the position andorientation of the weldment/work piece. Together, both the depth dataand the robot torch position/orientation data allow the actual torchangles, as positioned by the user, to be determined. Other torchparameters (e.g., a stickout distance) may be determined from theweldment joint/seam depth data and/or the robot torchposition/orientation data, in accordance with other embodiments.

As an example, FIG. 5A illustrates a welding torch 220 of the weldingsystem 100 that has been positioned by a user at a desired weld point510 (which is recorded by the robot controller 320) at a joint/seam 520of a work piece (weldment) 530. The welding torch is at a non-ideal pushangle. Similarly, FIG. 5B illustrates the welding torch 220 of FIG. 5Athat has been positioned by the user at the desired weld point 510 ofthe joint/seam 520 of the work piece 530 at a non-ideal work angle.

In one embodiment, the depth camera 410 is also configured to provide aregular camera view (e.g., using only one image aperture of the twoimage apertures of the depth camera 410). For example, FIG. 6illustrates a camera view 600 (provided by the weld angle correctiontool 400 of FIG. 2 via the camera 410) of the work piece 530 and thecorresponding joint/seam 520 showing the non-ideal angles of the weldingtorch 220, in an augmented reality manner, before angle correction hasbeen performed. The camera view 600 is displayed on a display device 422of the laptop computer 420. The AR reticle symbol 610 shows the locationof the recorded weld point 510 with respect to the work piece 530 andthe corresponding joint/seam 520. The work angle (represented by ARsymbol 615) of the welding torch 220 (as positioned by the user andcomputed by the algorithm 425) is 61 degrees (non-ideal). The push angle(represented by AR symbol 617) of the welding torch 220 (as positionedby the user and computed by the algorithm 425) is −22 degrees(non-ideal). In this manner, a user can view the camera view 600 on adisplay device 422 of the laptop computer 420 along with AR symbols 610,615, and 617 representing the weld point 510 and the non-ideal work andpush angles. The computer 420 is configured (e.g., via hardware andsoftware) to command the displaying of the various augmented realitysymbols on the display device 422.

FIG. 7 illustrates the camera view 600, provided by the weld anglecorrection tool 400 of FIG. 2 , of the work piece 530 and thecorresponding joint/seam 520 showing the corrected angles of the weldingtorch 220, in an augmented reality manner, after angle correction. Forexample, in one embodiment, the user selects the reticle symbol 610 inthe camera view 600 (e.g., using a user interface 427 (e.g., a computerkeyboard or a computer mouse) of the laptop computer 420. The user thencommands the system (e.g., via a CNTL F command on the keyboard of thelaptop computer 420) to correct the push angle and the work angle of thewelding torch 220 at the weld point 510 to the ideal angles for the typeof work piece 530 and joint/seam 520 with respect to the characteristicsof the work piece 530 and joint/seam 520 (as characterized by the weldangle correction tool 400). The AR symbology now shows the correctedwork angle symbol 615 representing 45 degrees, and the corrected pushangle symbol 617 representing 10 degrees in FIG. 7 .

The robot controller 320 “knows” the type of work piece and joint/seam.For example, in one embodiment, the work angle correction tool 400determines the type of work piece and joint/seam from the 3D point clouddata and informs the robot controller 320. The ideal angles are computedby the computer 420 of the weld angle correction tool 400 based on atleast the weldment depth data, in one embodiment. In another embodiment,the type of work piece and joint/seam (along with ideal angles) ispre-stored in the robot controller 320. The laptop computer 420communicates with the robot controller 320, and the robot controller 320changes the recorded work angle (with respect to the work piece andjoint/seam) to the ideal work angle of 45 degrees, and the recorded pushangle (with respect to the work piece and joint/seam) to the ideal pushangle of 10 degrees (as seen in the camera view 600 of FIG. 7 ).

The robot controller 320 may then command the robot arm 210 tore-position the welding torch 220 at the weld point 510, but with thecorrected angles of 45 degrees and 10 degrees. FIG. 8A illustrates thewelding torch 220 as corrected to the ideal push angle of 10 degrees,with respect to the joint/seam 520 of the work piece 530, by the robotof the welding system 100. FIG. 8B illustrates the welding torch 220 ofFIG. 8A as corrected to the ideal work angle of 45 degrees, with respectto the joint/seam 520 of the work piece 530, by the robot of the weldingsystem 100.

The weld angle correction tool 400 operates with the robotic weldingsystem 100 in real time when teaching the robot. In this manner, a usercan position the tip of a welding torch at a desired weld point in aweld joint/seam, and then use the weld angle correction tool 400 toadjust the angles of the welding torch to the ideal angles for that typeof work piece having a particular type of weld joint/seam. Therefore,the user of the welding system does not have to have detailed weldingknowledge of how to set the various angles of the welding torch.

FIG. 9 is a flow chart of an embodiment of a method 900 of correctingwelding torch angles using the weld angle correction tool 400 of FIG. 2as operatively integrated with the welding system 100 of FIG. 1 . Ingeneral, a single stereoscopic depth image is used to reliably locateplanes, plane intersections, and the extents of the plane intersectionlines of the weldment and corresponding joint/seam in the 3D robotcoordinate space. For example, in one embodiment, the weld anglecorrection tool uses one seam with two plane normals to calculate anddisplay the current work angle, as set by the user, and also find theideal work angle with respect to the joint/seam.

In step 910 of the method 900, stereoscopic image data of a weldment andits corresponding weld joint/seam are acquired using a depth camera of aweld angle correction tool. In step 920 of the method 900, a computer ofthe weld angle correction tool takes the stereoscopic image data andgenerates 3D point cloud data representing the weldment and itscorresponding weld joint/seam in robot coordinate space. In step 930 ofthe method 900, the computer of the weld angle correction tool processesthe 3D point cloud data to generate 3D plane and intersection datarepresentative of the weldment and its corresponding weld joint/seam inrobot coordinate space.

In step 940 of the method 900, the computer of the weld angle correctiontool imports 3D torch position an orientation data from the robotcontroller. The 3D torch position and orientation data represent theposition and orientation of the welding torch as positioned by the userat a recorded weld point along the weld joint/seam, in robot coordinatespace. At step 950 of the method 900, the computer of the weld anglecorrection tool calculates a torch push angle and a torch work angle atthe recorded weld point with respect to the weldment and its weldjoint/seam in robot coordinate space. The computer of the weld anglecorrection tool uses the user-placed torch position and orientation dataand the 3D plane and intersection data of the weldment and weldjoint/seam to calculate the torch push angle and the torch work angle.At step 960 of the method 900, the robot controller, when commanded bythe user via the weld angle correction tool, corrects the torch pushangle and the torch weld angle at the recorded weld point with respectto the weldment and weld joint/seam based on pre-stored ideal angles forthe weldment and its weld joint/seam. The ideal angles are stored in therobot controller, in accordance with one embodiment.

Other embodiments can provide additional capability as well. Forexample, in one embodiment, weld points can be defined by pointing thedepth camera at the weld joint/seam and “clicking” on a point instead ofmoving the welding torch into the weld joint/seam. Furthermore, in ateach mode, the welding wire of the welding torch can be fully retractedand weld points can be taught to the system with the correct stickoutusing the depth camera, thus preventing the wire from being bent duringteaching. Two-dimensional (2D) and three-dimensional (3D) wire searchmotion can be automatically defined using the detected planes. Insidecorners at the start and end of a fillet weld can be detected and pushangles can be modified to avoid crashing the robot into the weldment.The need for expensive, custom part fixturing can be eliminated by usingAR guides to show the user where to place a part in front of the robot,and using the depth camera to teach features that accurately locate thepart in space. In one embodiment, finding the intersection of three (3)seams can be used to quickly teach a part work object frame, allowingfor easy program re-use between different robots, or making multiples ofthe same part. In one embodiment, small lap-joint seams can be detectedand characterized using data acquired by the depth camera and anassociated algorithm.

FIG. 10 illustrates a block diagram of an example embodiment of acontroller 1000 that can be used, for example, in the welding system 100of FIG. 1 . For example, the controller 1000 may be used as the robotcontroller 320 and/or as a controller in the welding power supply 310.Furthermore, the controller 1000 may be representative of the laptopcomputer 420 of FIG. 2 , or of other computer platforms in otherembodiments that perform much of the functionality of the weld anglecorrection tool 400.

Referring to FIG. 10 , the controller 1000 includes at least oneprocessor 1014 (e.g., a microprocessor, a central processing unit, agraphics processing unit) which communicates with a number of peripheraldevices via bus subsystem 1012. These peripheral devices may include astorage subsystem 1024, including, for example, a memory subsystem 1028and a file storage subsystem 1026, user interface input devices 1022,user interface output devices 1020, and a network interface subsystem1016. The input and output devices allow user interaction with thecontroller 1000. Network interface subsystem 1016 provides an interfaceto outside networks and is coupled to corresponding interface devices inother devices.

User interface input devices 1022 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into the controller 1000 or onto a communication network.

User interface output devices 1020 may include a display subsystem, aprinter, or non-visual displays such as audio output devices. Thedisplay subsystem may include a cathode ray tube (CRT), a flat-paneldevice such as a liquid crystal display (LCD), a projection device, orsome other mechanism for creating a visible image. The display subsystemmay also provide non-visual display such as via audio output devices. Ingeneral, use of the term “output device” is intended to include allpossible types of devices and ways to output information from thecontroller 1000 to the user or to another machine or computer system.

Storage subsystem 1024 stores programming and data constructs thatprovide some or all of the functionality described herein. For example,computer-executable instructions and data are generally executed byprocessor 1014 alone or in combination with other processors. Memory1028 used in the storage subsystem 1024 can include a number of memoriesincluding a main random access memory (RAM) 1030 for storage ofinstructions and data during program execution and a read only memory(ROM) 1032 in which fixed instructions are stored. A file storagesubsystem 1026 can provide persistent storage for program and datafiles, and may include a hard disk drive, a solid state drive, a floppydisk drive along with associated removable media, a CD-ROM drive, anoptical drive, or removable media cartridges. The computer-executableinstructions and data implementing the functionality of certainembodiments may be stored by file storage subsystem 1026 in the storagesubsystem 1024, or in other machines accessible by the processor(s)1014.

Bus subsystem 1012 provides a mechanism for letting the variouscomponents and subsystems of the controller 1000 communicate with eachother as intended. Although bus subsystem 1012 is shown schematically asa single bus, alternative embodiments of the bus subsystem may usemultiple buses.

The controller 1000 can be of varying types. Due to the ever-changingnature of computing devices and networks, the description of thecontroller 1000 depicted in FIG. 10 is intended only as a specificexample for purposes of illustrating some embodiments. Many otherconfigurations of a controller are possible, having more or fewercomponents than the controller 1000 depicted in FIG. 10 .

While the disclosed embodiments have been illustrated and described inconsiderable detail, it is not the intention to restrict or in any waylimit the scope of the appended claims to such detail. It is, of course,not possible to describe every conceivable combination of components ormethodologies for purposes of describing the various aspects of thesubject matter. Therefore, the disclosure is not limited to the specificdetails or illustrative examples shown and described. Thus, thisdisclosure is intended to embrace alterations, modifications, andvariations that fall within the scope of the appended claims, whichsatisfy the statutory subject matter requirements of 35 U.S.C. § 101.The above description of specific embodiments has been given by way ofexample. From the disclosure given, those skilled in the art will notonly understand the general inventive concepts and attendant advantages,but will also find apparent various changes and modifications to thestructures and methods disclosed. It is sought, therefore, to cover allsuch changes and modifications as fall within the spirit and scope ofthe general inventive concepts, as defined by the appended claims, andequivalents thereof.

What is claimed is:
 1. A method of correcting angles of a welding torchpositioned by a user while training a robot of a robotic welding system,the method comprising: acquiring a single image of weldment depth dataof a weldment and a corresponding weld seam using a depth camera of aweld angle correction tool; processing the weldment depth data using thecomputer of the weld angle correction tool; importing user-placed 3Dtorch position and orientation data to the computer of the weld anglecorrection tool from a robot controller of a robotic welding system in arobot coordinate space for a recorded weld point along the correspondingweld seam; calculating, using the computer of the weld angle correctiontool, at least one torch angle for the recorded weld point with respectto the weldment and the corresponding weld seam in the robot coordinatespace based on the weldment depth data of the weldment and thecorresponding weld seam, as processed by the computer of the weld anglecorrection tool, and the user-placed 3D torch position and orientationdata; and correcting the at least one torch angle for the recorded weldpoint based on pre-stored ideal angles for the weldment and thecorresponding weld seam.
 2. The method of claim 1, wherein the weldmentdepth data is stereoscopic image data.
 3. The method of claim 2, whereinthe processing of the weldment depth data includes generating 3D pointcloud data from the stereoscopic image data in the robot coordinatespace using the computer of the weld angle correction tool.
 4. Themethod of claim 3, wherein the processing of the weldment depth dataincludes generating 3D plane and intersection data representative of theweldment and the corresponding weld seam from the 3D point cloud data inthe robot coordinate space using the computer of the weld anglecorrection tool.
 5. The method of claim 1, wherein the at least onetorch angle includes a torch push angle.
 6. The method of claim 1,wherein the at least one torch angle includes a torch work angle.
 7. Themethod of claim 1, wherein the weldment depth data is transmitted via atleast one of a wired or a wireless means from the depth camera to thecomputer of the weld angle correction tool.
 8. The method of claim 1,wherein the user-placed 3D torch position and orientation data istransmitted via at least one of a wired or a wireless means from therobot controller to the computer of the weld angle correction tool. 9.The method of claim 1, wherein a position of the depth camera iscalibrated to one of a tip of the welding torch or a tool center point(TCP) of the robot.
 10. The method of claim 1, wherein the computer ofthe weld angle correction tool uses matrix manipulation techniques,point cloud manipulation techniques, and feature recognition techniquesas part of processing the weldment depth data.
 11. A weld anglecorrection tool for correcting angles of a welding torch positioned by auser while training a robot of a robotic welding system, the weld anglecorrection tool comprising: a depth camera configured to acquire asingle image of weldment depth data of a weldment and a correspondingweld seam to be welded by a robotic welding system having a weldingtorch; and a computer device configured to receive: the weldment depthdata from the depth camera, and user-placed 3D torch position andorientation data from a robot controller of the robotic welding systemfor a recorded weld point along the corresponding weld seam, wherein thecomputer device is configured to: calculate at least one torch angle ofthe welding torch for the recorded weld point with respect to theweldment and the corresponding weld seam in a coordinate space of therobotic welding system based on the weldment depth data and theuser-placed torch position and orientation data, and calculate at leastone corrected torch angle based on the at least one torch angle for therecorded weld point, as calculated, and pre-stored ideal angles for theweldment and the corresponding weld seam.
 12. The weld angle correctiontool of claim 11, wherein the weldment depth data is stereoscopic imagedata.
 13. The weld angle correction tool of claim 12, whereincalculating of the at least one torch angle using the computer deviceincludes generating 3D point cloud data from the stereoscopic image datain the coordinate space of the robotic welding system.
 14. The weldangle correction tool of claim 13, wherein calculating of the at leastone torch angle using the computer device includes generating 3D planeand intersection data representative of the weldment and thecorresponding weld seam from the 3D point cloud data in the coordinatespace of the robotic welding system.
 15. The weld angle correction toolof claim 11, wherein the computer device is in the form of a laptopcomputer.
 16. The weld angle correction tool of claim 11, wherein thecomputer device is integrated into the robot controller of the roboticwelding system.
 17. The weld angle correction tool of claim 11, whereinthe computer device is integrated into a welding power supply of therobotic welding system.
 18. The weld angle correction tool of claim 11,wherein the depth camera is configured to be removably attached to thewelding torch.
 19. The weld angle correction tool of claim 11, whereinthe depth camera is configured to be mounted on joint 6 of a robot armof the robotic welding system.
 20. The weld angle correction tool ofclaim 11, wherein the depth camera includes two imaging apertures foracquiring stereoscopic image data.